//================================================
// AirCrash Game Engine
// Effect Library
// ===============================================

#ifndef EFFECT_LIB_CLASS
#define EFFECT_LIB_CLASS

#include <map>

#define EFFECTLIB EffectLib::GetSingleton()

class EffectLib
{
public:
	virtual ~EffectLib();
	static EffectLib* GetSingleton();
	void Cleanup();

	ID3D10Effect* CreateEffect(const tstring& file);
	void SetShadow(ID3D10ShaderResourceView* ShadowMap);
	ID3D10ShaderResourceView* GetShadow() const;

private:
	EffectLib();
	static EffectLib* m_Singleton;
	ID3D10ShaderResourceView* m_ShadowMap;

	map<tstring, ID3D10Effect*> m_Effects;

	EffectLib(const EffectLib &t);
	EffectLib& operator= (const EffectLib &t);
};
#endif